home *** CD-ROM | disk | FTP | other *** search
/ Aminet 50 / Aminet 50 (2002)(GTI - Schatztruhe)[!][Aug 2002].iso / Aminet / util / rexx / SCGuide.lha / SCGuide.rexx < prev   
OS/2 REXX Batch file  |  2002-05-20  |  6KB  |  115 lines

  1. /* SCGuide 0.8 ©2002 Michael Trebilcock
  2. $VER: SCGuide 0.8 (20.5.02) Sofcom TV Guide script
  3. */
  4. Options Results;Parse Arg Args
  5.  
  6. IF Exists("LIBS:rexxreqtools.library")|Exists("LIBS/rexxreqtools.library")|Exists("rexxreqtools.library") THEN DO
  7. IF ~Show("L","rexxreqtools.library") THEN Call AddLib("rexxreqtools.library",0,-30,0);End
  8. ELSE Call CloseTCP("Unable to open rexxreqtools.library, please install LIBS:rexxreqtools.library")
  9.  
  10. UArgs=Upper(Args);URL="TCP:www.sofcom.com.au/80";File="0"
  11. Tag="SCGuide 0.8 ©2002 Michael Trebilcock";NL="0A"x
  12. IF UArgs="HELP"|Args="?" THEN Call CloseTCP("Usage: RX SCGuide [FORCE]")
  13.  
  14. IF GetClip(SCDate)~=Date() THEN Call SetClip(SCDate,Date())
  15. ELSE IF Right(UArgs,5)~="FORCE" THEN DO;File="1";URL="T:SCDate.log";End
  16.  
  17. INFO Screen;Screen="rt_pubscrname='"Result"'"
  18.  
  19. IF File="0" THEN IF ~Open(File,"T:SCDate.log","W") THEN Call CloseTCP("Unable to open T:SCDate.log to save dates info to")
  20. IF File="1" THEN SAY "Reading dates info from T:SCDate.log, please wait.."
  21. ELSE SAY "Connecting to www.sofcom.com.au, please wait.."
  22. IF ~Open(TCP,URL,"RW") THEN DO
  23.  IF File="0" THEN Call CloseTCP("Unable to connect, try again later..")
  24.  Call CloseTCP("Cannot open T:SCDate.log, use the FORCE argument")
  25. End
  26. IF File="0" THEN DO
  27.  SAY "Connected, grabbing dates information.."
  28.  Call WriteLn(TCP,"GET /tv/ HTTP/1.0");Call WriteLn(TCP,"")
  29. End
  30. Output=ReadLn(TCP);IF File="0" THEN Call WriteLn(File,Output)
  31. IF Word(Output,2)~="200" THEN Call CloseTCP("Error "Word(Output,2)", unable to grab dates information..")
  32. i=0
  33. DO UNTIL i=2|EOF(TCP)
  34.  Output=ReadLn(TCP);IF File="0" THEN Call WriteLn(File,Output) 
  35.  IF Word(Output,1)="<SELECT" THEN i=i+1
  36. End
  37. IF EOF(TCP) THEN Call CloseTCP("Page layout has changed, please report this to trebs@ihug.com.au")
  38. i=1;Output=ReadLn(TCP);IF File="0" THEN Call WriteLn(File,Output)
  39. DayOpts="Please select one of the following:"NL
  40. DO UNTIL Left(Output,9)="</SELECT>"|EOF(TCP)
  41.  Where=SubStr(Output,Pos(d2c(34),Output)+1)
  42.  Day.i=SubStr(Where,1,Pos(d2c(34),Where)-1)
  43.  DayOpts=DayOpts""NL""i". "Day.i
  44.  i=i+1;Output=ReadLn(TCP);IF File="0" THEN Call WriteLn(File,Output)
  45. End
  46. Amount=i-1
  47. IF EOF(TCP) THEN Call CloseTCP("Page layout has changed, please report this to trebs@ihug.com.au")
  48. Call Close(TCP);Call Close(File);SAY "Grabbed date information.."
  49. NWorks.1="";NWorks.2="";NWorks.3=""
  50. NWorks=rtgetstring("","Please select one of the following:"NL NL"1. Free to Air"NL"2. Foxtel"NL"3. Optus Television",Tag,"_Ok|_Cancel",Screen)
  51. IF rtresult="0" THEN Exit;IF NWorks<1|NWorks>3 THEN Call CloseTCP("Invalid selection!")
  52. NWorks.NWorks="on"
  53. Loc=rtgetstring("","Please select one of the following:"NL NL"1. Adelaide"NL"2. SA Regional"NL"3. Brisbane"NL"4. QLD Regional"NL"5. Canberra"NL"6. Darwin"NL"7. NT Regional"NL"8. Hobart"NL"9. TAS Regional"NL"10. Melbourne"NL"11. VIC Regional"NL"12. Perth"NL"13. WA Regional"NL"14. Sydney"NL"15. NSW Regional",Tag,"_Ok|_Cancel",Screen)
  54. IF rtresult="0" THEN Exit;IF Loc<1|Loc>15 THEN Call CloseTCP("Invalid selection!")
  55. Loc.1="Adelaide";Loc.2="SAReg";Loc.3="Brisbane"
  56. Loc.4="QLDReg";Loc.5="Canberra";Loc.6="Darwin"
  57. Loc.7="NTReg";Loc.8="Hobart";Loc.9="TASReg"
  58. Loc.10="Melbourne";Loc.11="VICReg";Loc.12="Perth"
  59. Loc.13="WAReg";Loc.14="Sydney";Loc.15="NSWReg"
  60. Loc=Loc.Loc;Day=rtgetstring("",DayOpts,Tag,"_Ok|_Cancel",Screen)
  61. IF rtresult="0" THEN Exit;IF Day<1|Day>Amount THEN Call CloseTCP("Invalid selection!")
  62. Day=Day.Day;Time=rtgetstring("","Please select one of the following:"NL NL"1. Morning"NL"2. Afternoon"NL"3. Night"NL"4. LateNight",Tag,"_Ok|_Cancel",Screen)
  63. IF rtresult="0" THEN Exit;IF Time<1|Time>4 THEN Call CloseTCP("Invalid selection!")
  64. Time.1="Morning";Time.2="Afternoon"
  65. Time.3="Night";Time.4="LateNight"
  66. Time=Time.Time
  67. SAY "";SAY "Location = "Loc;SAY "Day = "Day
  68. SAY "Time = "Time;SAY ""
  69. SAY "Connecting to www.sofcom.com.au, please wait.."
  70. IF ~Open(TCP,"TCP:www.sofcom.com.au/80","RW") THEN Call CloseTCP("Unable to connect, try again later..")
  71. SAY "Connected, reading TV schedule.."
  72. Call WriteLn(TCP,"GET /cgi-bin/TV/select?fta="NWorks.1"&fox="NWorks.2"&opt="NWorks.3"&state="Loc"&date="Day"&lk=sofcom&searchtype=search&option="Time"&Submit=View+TV+schedule HTTP/1.0")
  73. Call WriteLn(TCP,"")
  74. Output=Word(ReadLn(TCP),2);IF Output~="200"&Output~="302" THEN Call CloseTCP("Error "Output", unable to read TV schedule..")
  75. IF Output="200" THEN Call ReadList();ELSE DO
  76. DO UNTIL Word(Output,1)="Location:"|EOF(TCP)
  77. Output=ReadLn(TCP);End
  78. IF EOF(TCP) THEN Call CloseTCP("Page layout has changed, please report this to trebs@ihug.com.au")
  79. Call Close(TCP);SAY "Received re-direction URL, connecting..";SAY Output
  80. Parse Var Output a".au"URL;IF ~Open(TCP,"TCP:www.sofcom.com.au/80","RW") THEN Call CloseTCP("Unable to connect, try again later..")
  81. Call WriteLn(TCP,"GET "URL" HTTP/1.0");Call WriteLn(TCP,"")
  82. IF Word(ReadLn(TCP),2)~="200" THEN Call CloseTCP("Unable to read TV schedule..")
  83. Call ReadList()
  84. Exit
  85.  
  86. CloseTCP:
  87. IF Arg(1)~="" THEN SAY Arg(1)
  88. Call Close(TCP);Call Close(File)
  89. Exit
  90.  
  91. ReadList:
  92. DO UNTIL EOF(TCP)
  93.  Output=ReadLn(TCP)
  94.  IF Pos("valign="d2c(34)"TOP"d2c(34)" bgcolor="d2c(34)"#CCCCCC"d2c(34),Output)>0 THEN DO
  95.   SAY ""
  96.   SAY ""
  97.   Where=SubStr(Output,Pos("<B>",Output)+3)
  98.   SAY ""SubStr(Where,1,Pos("</B>",Where)-1)""
  99.   SAY ""
  100.  End
  101.  IF Pos("am:",Output)>0|Pos("pm:",Output)>0 THEN DO
  102.   IF Left(Output,4)="<BR>" THEN Where=SubStr(Output,5)
  103.   ELSE IF Pos(".",Left(Output,4))>0 THEN Where=Output
  104.   ELSE Where=SubStr(Output,Pos("<B>",Output)+3)
  105.   When=SubStr(Where,1,Pos(":",Where)-1)
  106.   Where=SubStr(Output,Pos("<a href=",Output))
  107.   Where=SubStr(Where,Pos(">",Where)+1)
  108.   SAY ""When": "SubStr(Where,1,Pos("</a>",Where)-1)
  109.  End
  110. End
  111. SAY ""
  112. SAY ""
  113. Call CloseTCP("TV listings complete..")
  114. Exit
  115.